Computer aided software engineering (CASE) is a powerful software development tool, with the potential of reducing software development backlogs and software maintenance. However, as pointed out by Chang-Yang Lin and Chen-Hua Chung, in "End-User Computing In A CASE Environment," J.Info.Syst.Manage., Vol.8, No. 2 pp. 17-21 (1991), CASE tools are still used primarily by information science professionals, rather then by end-users. This is a serious shortcoming of CASE tools, because as new conditions and opportunities arise, the end-users are the best judges of end-user needs and ways of doing business. CASE tools can not reach their full potential without significant end-user involvement.
In this regard, Lin and Chung posit that CASE is a form of Group Decision Support System (GDSS), in that end-users can participate in the CASE process. End-user participation in the CASE process and environment requires structuring the CASE environment to support end-user applications development.
CASE is an environment of integrated tools that automate the systems development process. Ultimately, Lin and Chung argue that CASE should be able to capture requirements in natural English statements and automatically generate systems that meet these requirements. However, they point out that this is not an easily attainable goal. This is because CASE tools only automate limited portions of the software life cycles, i.e., code generators and diagramming tools.
In this regard, the CASE environment can be regarded as a set of software tools that provide some degree of automation to one or more phases of the system life cycle, e.g., code generation. CASE accomplishes this through a central repository, rules, reusable software, and tools that support systems development. Exemplary systems development tools include, solely by way of exemplification and not limitation include:
1. Diagramming tools for analysis and design of an enterprise's data, activities, and interactions. PA1 2. Dictionary tools for recording, maintaining, and reporting system details. PA1 3. Prototyping tools that support, for example, user interfaces, inputs, dialogs, outputs, forms, and reports through the use of screen generators, report generators, and menu generators. These prototyping tools may also be the outputs of the CASE system. PA1 4. Code construction tools including code generators to automate conversion of specifications into high level languages and data bases. PA1 1. A profiling subsystem that collects information necessary to generate a user profile and a problem profile. PA1 2. A requirement--software matching subsystem that initiates an algorithm to match the user profile and the problem profile with a profile of the software tools supported by ICE. PA1 3. A tracking subsystem that captures the "consultation" results. PA1 4. A maintenance subsystem that maintains information about tool resources and profiles. PA1 (1). Electronic brainstorming for facilitating substantially simultaneous and anonymous information collection, with concomitant exchange of ideas and comments about the collected information from the participants. PA1 (2). Issue Analysis and Idea Organization capability. This allows the participants to group, categorize and define issues and ideas from the collected information. PA1 (3). Voting Application capability. This facilitates ranking and prioritization of issues and ideas. PA1 (4). Topic Commenter capability to facilitate viewing and comment on the issues and ideas. PA1 (5). A dictionary means that allows participants to define words that are ambiguous. PA1 (6). Specific software for compatibilizing the output of the group decision support system to the input of either the bridge subsystem or the application development subsystem. PA1 (1). An Association Matrix tool that allows users to describe relationships between objects. This can provide a matrix output or a tabular output. PA1 (2). A Decomposition Diagrammer tool that allows users to decompose objects into greater levels of detail. PA1 (3). A Property Matrix Diagrammer tool that allows users to describe the properties of objects. PA1 (4). An Entity Relationship Diagrammer tool that allows users to describe data requirements the enterprise as well as the data requirements of and between objects within the enterprise. PA1 (5). A Data Flow Diagrammer Tool that allows users to identify data flowing into, out of, and between objects. PA1 (6). A rules repository.
To be noted is that the set of CASE tools encourages user-developer interaction by its support of diagramming and programming tools. This gives rise to Joint Application Development (JAD). JAD is an extension of CASE, relying on interviewing and user understandable user interfaces.
Prototyping is the normal form of end-user interface to the CASE environment. Even this level of interface requires heavy Information Scientist involvement. In a prototyping environment, users use, for example, entity-relationship diagrams and process hierarchy diagrams to produce a graphic representation of a proposed system. End users may also use prototyping tools to lay out screens and reports, and define tables and reports. These activities may involve GDSS methodology.
The output of the end-user prototyping process is not a direct input to the CASE environment. CASE is still, primarily an Information Science professional tool. Lin and Chung do not propose an interface to the end-user. To the contrary, they propose an new generation of CASE tools and environments. Lin and Chung propose that this new generation of CASE tools start from a task oriented, icon based system, supporting sophisticated application generation through the direct manipulation of icons representing reusable codes. This new CASE environment would combine prototyping with a simplified and standardized, user friendly, graphical user interface, and would have built in expert systems.
Another end-user software development system is the Information Center Expert (ICE), which is described, for example, by Ajay S. Vinze, Douglas Ro Vogel, and Jay F. Nunamaker, Jr., in "Validation of a Knowledge-Based System: The ICE Case," Proceedings of the Twenty-Third Annual Hawaii International Conference On Systems Sciences, 1990, Volume 3, pp. 239-246. ICE is an expert system that is designed to allow an end user to develop application specific software. It does this through a graphical user interface, and four subsystems:
ICE is an expert system based "matching" system, that matches requirements with available software tools and packages.
The goal of the various systems is to empower the software end-user to develop the end-use specific application software. The existing systems fail to accomplish this empowerment. This is because they fail to provide a user driven application development environment, in which an end-user group defines its software needs and develops software to fill those user-defined needs.
The above described systems, i.e., expert systems and enhanced CASE environments, while being strong attempts to empower non-experts, i.e., end users, to complete the steps of creating application software in the same way that an expert would, require an high level of software development expertise on the part of the end-user. Thus, they fail to take advantage of the end-user's superior knowledge of the task specific application software needs.
Nor do the above systems even attempt to integrate group decision support methods with computer assisted software engineering methods in a single, interactive, synergistic system.
Thus, a clear need exists for an interactive, integrated group decision support system with a computer assisted software engineering system.